﻿using MovingChame.Web.Models;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.Text;

namespace MovingChame.Web.Services
{
    [ServiceContract]
    public interface ITourService
    {
        [OperationContract]
        List<TourData> GetLatestTours(double userLatitude, double userLongitude, int numOfResult);

        [OperationContract]
        List<TourData> GetCheapestTours(double userLatitude, double userLongitude, int numOfResult);

        [OperationContract]
        List<TourData> GetHottestTours(double userLatitude, double userLongitude, int numOfResult);

        [OperationContract]
        TourData GetLatestTour(double userLatitude, double userLongitude);

        [OperationContract]
        TourData GetCheapestTour(double userLatitude, double userLongitude);

        [OperationContract]
        TourData GetHottestTour(double userLatitude, double userLongitude);

        [OperationContract]
        List<TourData> SearchTour(string keyword);

        [OperationContract]
        List<TourData> SearchTourAdvanced(string keyword, int budget, TourType tourTypes, int length);

        [OperationContract]
        bool VoteUpTour(int tourId);

        [OperationContract]
        bool VoteDownTour(int tourId);

        [OperationContract]
        TourData GetTour(int tourId);
    }
}